package com.zb.vo;

import com.zb.utils.VerificUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * @Author WEN
 * @Date 2024/1/11 0011
 **/
@Data
@ApiModel("出库发货信息及物流对象")
public class StoreOutboundSendVo {
    @NotBlank(message = "发货人姓名不能为空")
    @Length(max = 100, message = "发货人姓名长度限制 100 个字符以内")
    @ApiModelProperty(value = "发货人姓名", required = true)
    private String sendName;

    @NotBlank(message = "发货人手机号不能为空")
    @Pattern(regexp = VerificUtil.REGEX_PHONE, message = "发货人手机号格式错误")
    @ApiModelProperty(value = "发货人手机号", required = true)
    private String sendPhone;

    @NotBlank(message = "发货人地址 -省不能为空")
    @Length(max = 50, message = "发货人地址 -省长度限制 50 个字符以内")
    @ApiModelProperty(value = "发货人地址 -省", required = true)
    private String sendProvince;

    @NotBlank(message = "发货人地址 -市不能为空")
    @Length(max = 50, message = "发货人地址 -市长度限制 50 个字符以内")
    @ApiModelProperty(value = "发货人地址 -市", required = true)
    private String sendCity;

    @NotBlank(message = "发货人地址 -县/区不能为空")
    @Length(max = 50, message = "发货人地址 -县/区长度限制 50 个字符以内")
    @ApiModelProperty(value = "发货人地址 -县/区", required = true)
    private String sendArea;

    @Length(max = 50, message = "发货人地址 -镇长度限制 50 个字符以内")
    @ApiModelProperty(value = "发货人地址 -镇")
    private String sendTown;

    @NotBlank(message = "发货人详细地址不能为空")
    @Length(max = 200, message = "发货人详细地址长度限制 200 个字符以内")
    @ApiModelProperty(value = "发货人地址 -详细地址", required = true)
    private String sendAddress;

    @Length(max = 500, message = "备注长度限制 500 个字符以内")
    @ApiModelProperty(value = "出库备注")
    private String remark;

    @Length(max = 200, message = "物流名称长度限制 200 个字符以内")
    @ApiModelProperty(value = "物流名称")
    private String logisticsName;

    @Length(max = 60, message = "物流编码长度限制 60 个字符以内")
    @ApiModelProperty(value = "物流编码")
    private String logisticsCode;

    @Length(max = 60, message = "物流单号限制 60 个字符以内")
    @ApiModelProperty(value = "物流单号")
    private String logisticsNo;

    @ApiModelProperty(value = "出库物料")
    private List<StoreBoundMaterialVo> outBoundMaterialVos;


}
